// const db = uniCloud.database()
// 判断是否包含角组之一
function hasRole(role, roles) {
	for (let i = 0; i < role.length; i++) {
		if (roles.includes(role[i])) {
			return true; // 如果找到相同元素，返回 true
		}
	}
	return false; // 如果没有找到相同元素，返回 false
}
/**
 * @param {object} params {role, status, user_id}
 * @param {Array} role
 * @param {number} status
 * @param {string} user_id
 */
module.exports = async function(params = {}) {
	const clientInfo = this.getUniversalClientInfo()
	const dbJQL = uniCloud.databaseForJQL({
		clientInfo
	})
	
	let {
		data
	} = await dbJQL.collection('uni-id-users').doc(params.user_id).field('register_env').get()
	
	let user_dcloud_appid =[data[0].register_env.appid]
	// 1. 设置需要使用相应app的权限
	
	// 使用店铺后台的角色
	const shop_roles = ["shop_manager", "shop_assistant", "shop_owner"];
	if (hasRole(params.role,shop_roles)){
		user_dcloud_appid=Array.from(new Set([...user_dcloud_appid,this.wjfCommonConfig.appIds.shopAdmin]))
	}
	
	// 使用平台后台的角色
	const plat_roles = ["plat_admin"];
	if (hasRole(params.role,plat_roles)){
		user_dcloud_appid=Array.from(new Set([...user_dcloud_appid,this.wjfCommonConfig.appIds.platformAdmin]))
	}

	// 2. 更新users表
	let res1 = await dbJQL.collection('uni-id-users').where({
		_id: params.user_id
	}).update({
		role:params.role,
		dcloud_appid:user_dcloud_appid
	})
	
	// 3. 更新wjf-management-persons表
	let res2 = await dbJQL.collection('wjf-management-persons').where({
		user_id: params.user_id
	}).update({
		role:params.role
	})

	return {
		errCode: 0,
		errMsg: 'edit-success'
	}
}